Improve error estimation (API *and* implementation)#852
Merged
Conversation
…o save minutes of test time
nathanaelbosch
added a commit
to nathanaelbosch/ProbNumDiffEq.jl
that referenced
this pull request
Feb 18, 2026
The probabilistic error estimate is the standard deviation of the predicted constraint residual. For second-order ODEs the constraint operates on u'', so converting to a local error in u requires scaling by dt²/2 (Taylor series), not just dt as for first-order ODEs. This aligns with the approach in pnkraemer/probdiffeq#852 and significantly improves step size selection for second-order problems like Pleiades.
nathanaelbosch
added a commit
to nathanaelbosch/ProbNumDiffEq.jl
that referenced
this pull request
Feb 23, 2026
The probabilistic error estimate is the standard deviation of the predicted constraint residual. For second-order ODEs the constraint operates on u'', so converting to a local error in u requires scaling by dt²/2 (Taylor series), not just dt as for first-order ODEs. This aligns with the approach in pnkraemer/probdiffeq#852 and significantly improves step size selection for second-order problems like Pleiades.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Semi-breaking, in the sense that a variable that has been introduced since the last release has now been renamed.
Changes:
errorest_local_residual(_cached)intoerror_residual_stdbecause the "local" is implied for error estimation, and because the estimator specifically uses the marginal standard deviation.VdP Before:

VdP After:

Now, the fourth-order solver beats LSODA, and all solvers cover the ranges of precision more evenly.
Pleiades Before:
Pleiades After:
Now, the precision ranges are more evenly covered (similar to the non-probabilistic methods).